package com.sunfeng.jksj.p20;

import java.util.concurrent.atomic.AtomicLong;

/**
 * @author sunfeng
 * @date 2021/06/09 17:24
 **/
public class TestAtomicLong {
    public static void main(String[] args) {
        AtomicLong atomicLong = new AtomicLong(0);
            //compareAndSwapLong的语义和 CAS 指令的语义的差别仅仅是返回值不同而已。
        // compareAndSwapLong  返回的是 boolean 类型

        System.out.println(atomicLong.getAndIncrement());
        //Java 提供的原子类里面 CAS 一般被实现为 compareAndSet()
        // 返回值为true
        //compareAndSet() 的语义和 CAS 指令的语义的差别仅仅是返回值不同而已，compareAndSet() 里面如果更新成功，则会返回 true，否则返回 false。
        System.out.println(atomicLong.compareAndSet(1, 2));


    }
}
